package pl.edu.agh.jemo.conf.types;

import java.util.ArrayList;
import java.util.List;

import pl.edu.agh.jemo.evolution.genotype.Genotype;
import pl.edu.agh.jemo.evolution.genotype.impl.DoubleGenotype;

/**
 * Class dedicated to list all available Genotype types.
 * It is used by user interface, in order to help user choosing a genotype to be used by specimen in algorithm.
 * 
 * @author Marcin.Zbijowski
 *
 */
public class GenotypeTypesHandler {
	
	/**
	 * Returns collection of all available implemented genotypes in jemo.
	 * Returned object is java.util.List, containing references to classes being implementation of Genotype interface.
	 * This method should be updated when adding new genotype holder implementation.
	 * 
	 * @return List of objects representing classes of available genotypes
	 */
	public static List<PrintableType<? extends Genotype>> getGenotypeTypes() {
		List<PrintableType<? extends Genotype>> classes = new ArrayList<PrintableType<? extends Genotype>>();
		classes.add(new PrintableType<DoubleGenotype>(DoubleGenotype.class, "Double Genotype"));
		return classes;
	}
}
